package com.partterns.factory;

/**
 * 测试抽象工厂
 * 抽象工厂模式（Abstract Factory Pattern）是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。
 * 这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。
   在抽象工厂模式中，接口是负责创建一个相关对象的工厂，不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。
 */
public class AbstractFactoryTest {
    public static void main(String[] args){
        //获取形状工厂
        AbstractFactory shapeFactory=FactoryProducer.getFactory("SHAPE");
        Shape shape1=shapeFactory.getShape("CIRCLE");
        shape1.draw();
        //获取颜色工厂
        AbstractFactory colorFactory=FactoryProducer.getFactory("COLOR");
        Color color1=colorFactory.getColor("RED");
        color1.fill();
    }

}
